<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 静态成员: 属于类,但不属于实例化的成员
        //          其调用不需要实例化
        // function Person(name){
        //     this.name = name;
        //     Person.num++;
        // }
        // Person.num = 0;//静态属性
        // Person.fn = function(){ //静态方法
        //     console.log('fn');
        // }

        // 统计Person类实例化的次数
        // Person.num = 0;

        // ES6 静态成员
        // class Person{
        //     static num = 0;// 静态属性
        //     constructor(name){
        //         this.name = namel
        //         this.fn()
        //     }
        //     static fn(){
        //         console.log(fn);//静态方法
        //     }
        // }

        // 单例模式(单体模式): 一个类只保证有一个实例
        class Person{
            static instance = null;
            constructor(name){
                this.name = name;
                if(!Person.instance){
                    Person.instance = this;
                }else{
                    return Person.instance;
                }
            }
            name ={
                name:'王五'
            }
        }
        let p = new Person('张三')
        let p2 = new Person('李四')
        console.log(p2);
        console.log(p2.name);//张三
        console.log(p[name]);//undefined
    </script>
</body>
</html>